package com.campus.help.dto;

import com.campus.help.entity.SecondhandType;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 二手商品类别DTO（用于管理端）
 *
 * @author campus-help
 * @since 2025-10-17
 */
@Data
public class SecondHandCategoryDTO {
    
    private Long id;
    
    /**
     * 类别名称 (映射到前端的 categoryName)
     */
    private String categoryName;
    
    /**
     * 描述
     */
    private String description;
    
    /**
     * 图标
     */
    private String icon;
    
    /**
     * 排序
     */
    private Integer sortOrder;
    
    /**
     * 状态（0：禁用，1：启用）
     */
    private Integer status;
    
    /**
     * 创建时间
     */
    private LocalDateTime createdAt;
    
    /**
     * 更新时间
     */
    private LocalDateTime updatedAt;
    
    /**
     * 从实体转换为DTO
     */
    public static SecondHandCategoryDTO fromEntity(SecondhandType entity) {
        if (entity == null) {
            return null;
        }
        
        SecondHandCategoryDTO dto = new SecondHandCategoryDTO();
        dto.setId(entity.getId());
        dto.setCategoryName(entity.getTypeName());  // 字段映射
        dto.setDescription(entity.getDescription());
        dto.setIcon(entity.getIcon());
        dto.setSortOrder(entity.getSortOrder());
        dto.setStatus(entity.getStatus());
        dto.setCreatedAt(entity.getCreateTime());  // 字段映射 createTime -> createdAt
        dto.setUpdatedAt(entity.getUpdateTime());  // 字段映射 updateTime -> updatedAt
        
        return dto;
    }
    
    /**
     * 转换为实体
     */
    public SecondhandType toEntity() {
        SecondhandType entity = new SecondhandType();
        entity.setId(this.id);
        entity.setTypeName(this.categoryName);  // 字段映射
        entity.setDescription(this.description);
        entity.setIcon(this.icon);
        entity.setSortOrder(this.sortOrder);
        entity.setStatus(this.status);
        
        return entity;
    }
}

